home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / etkexp.zip / EDLL.H < prev    next >
C/C++ Source or Header  |  1992-10-28  |  16KB  |  315 lines

  1. /*═══════════════════════════════════════════════════════════════════════════╗
  2. ║ What's it called : EDLL.H                                                  ║
  3. ║                                                                            ║
  4. ║ What does it do  : Defines function prototypes of entry functions to E.DLL ║
  5. ║                    Defines E window information and structures.            ║
  6. ║                                                                            ║
  7. ║ Who and when     : Gennaro (Jerry) Cuomo                          9-88     ║
  8. ║                                                                            ║
  9. ╚═══════════════════════════════════════════════════════════════════════════*/
  10.  
  11. /*═══════════════════════════════════════════════════════════════════════════╗
  12. ║ EPM version Length String.                                         GC 7-88 ║
  13. ╚═══════════════════════════════════════════════════════════════════════════*/
  14.  
  15. //#define EVERSION "5.50"         // version number asciiz string.
  16.                                   // name of E dynalink library.
  17.  
  18. #define EDLLINCLUDE_INCLUDED
  19.  
  20. #define MAXFILENAME 260
  21.  
  22. /*═══════════════════════════════════════════════════════════════════════════╗
  23. ║ EPM related Window Messages                                        GC 7-88 ║
  24. ╚═══════════════════════════════════════════════════════════════════════════*/
  25. /* Sent to pass a command to the interpreter (defcmd). */
  26. #define EPM_EDIT_MSGID          WM_USER        +  0x500   // This evaluates to EPM_EDIT_MSGID = 5376
  27. #define EPM_EDIT_COMMAND        EPM_EDIT_MSGID +  1
  28. #define EPM_EDIT_RETCODE        EPM_EDIT_MSGID +  2
  29. #define EPM_EDIT_SAYERROR       EPM_EDIT_MSGID +  3
  30. #define EPM_EDIT_CURSORMOVE     EPM_EDIT_MSGID +  4
  31. #define EPM_EDIT_CHANGEFONT     EPM_EDIT_MSGID +  5
  32. #define EPM_EDIT_ACTIVEHWND     EPM_EDIT_MSGID +  6
  33. #define EPM_EDIT_OPTION         EPM_EDIT_MSGID +  7
  34. #define EPM_EDIT_ID             EPM_EDIT_MSGID +  8
  35. #define EPM_EDIT_SHOW           EPM_EDIT_MSGID +  9
  36. #define EPM_EDIT_NEWFILE        EPM_EDIT_MSGID +  10
  37. #define EPM_EDIT_DESTROYNOTIFY  EPM_EDIT_MSGID +  11
  38. #define EPM_EDIT_CONTROLTOGGLE  EPM_EDIT_MSGID +  12
  39. #define EPM_EDIT_MOUSEMGR       EPM_EDIT_MSGID +  13
  40. #define EPM_EDIT_RECORDKEY      EPM_EDIT_MSGID +  14
  41. #define EPM_EDIT_PLAYKEY        EPM_EDIT_MSGID +  15
  42. #define EPM_EDIT_ENDRECORDKEY   EPM_EDIT_MSGID +  16
  43. #define EPM_EDIT_QUERYRECORDKEY EPM_EDIT_MSGID +  17
  44. #define EPM_EDIT_CHAR           EPM_EDIT_MSGID +  18
  45. #define EPM_EDIT_DESTROY        EPM_EDIT_MSGID +  19
  46. #define EPM_EDIT_DESTROYRC      EPM_EDIT_MSGID +  20
  47. #define EPM_EDIT_HELPNOTIFY     EPM_EDIT_MSGID +  21
  48. #define EPM_EDIT_ASKTOQUIT      EPM_EDIT_MSGID +  22
  49. #define EPM_EDIT_ASKTOCLOSE     EPM_EDIT_MSGID +  23
  50. #define EPM_EDIT_ASKTODONE      EPM_EDIT_MSGID +  24
  51. #define EPM_EDIT_ASKTOFAILED    EPM_EDIT_MSGID +  25
  52.  
  53. #define EPM_EDIT_UPDATE_EDITLIST_ITEM EPM_EDIT_MSGID + 26
  54. #define EPM_EDIT_DOC2WIN              EPM_EDIT_MSGID + 27
  55. #define EPM_EDIT_WIN2DOC              EPM_EDIT_MSGID + 28
  56. #define EPM_EDIT_MINMAXFRAME          EPM_EDIT_MSGID + 29
  57. #define EPM_EDIT_EXEC_PROC            EPM_EDIT_MSGID + 30
  58. #define EPM_EDIT_EXEC_DYNALINK        EPM_EDIT_MSGID + 31
  59. #define EPM_EDIT_TURN_OFF_HIGHLIGHT   EPM_EDIT_MSGID + 32
  60. #define EPM_EDIT_SETTIMER             EPM_EDIT_MSGID + 33
  61. #define EPM_EDIT_POSTEDMSG1           EPM_EDIT_MSGID + 34
  62. #define EPM_EDIT_POSTEDMSG2           EPM_EDIT_MSGID + 35
  63. #define EPM_EDIT_POSTEDMSG3           EPM_EDIT_MSGID + 36  // future use
  64. #define EPM_EDIT_POSTDONE             EPM_EDIT_MSGID + 37
  65. #define EPM_EDIT_COMMAND2             EPM_EDIT_MSGID + 38
  66. #define EPM_EDIT_GETMEM               EPM_EDIT_MSGID + 39
  67. #define EPM_EDIT_VERSION              EPM_EDIT_MSGID + 40
  68. #define EPM_EDIT_MEMNOTIFY            EPM_EDIT_MSGID + 41
  69.  
  70. #define EPM_EXTRAWINDOW_REFRESH       EPM_EDIT_MSGID + 50
  71. #define EPM_EDIT_GETPROFILE           EPM_EDIT_MSGID + 51
  72. #define EPM_EDIT_ACTIVATEFILEID       EPM_EDIT_MSGID + 52
  73. #define EPM_EDIT_QUERY_HELP_INSTANCE  EPM_EDIT_MSGID + 53
  74. #define EPM_FRAME_STATUSLINE          EPM_EDIT_MSGID + 55
  75. #define EPM_FRAME_MESSAGELINE         EPM_EDIT_MSGID + 56
  76. #define EPM_FRAME_ROTATEICONS         EPM_EDIT_MSGID + 57
  77. #define EPM_DRAGDROP_DIRECTTEXTMINIP  EPM_EDIT_MSGID + 58
  78. #define EPM_EDIT_WINDOWCREATED        EPM_EDIT_MSGID + 59
  79. #define EPM_CREATE_DDE_LINK           EPM_EDIT_MSGID + 60
  80. #define EPM_DRAGDROP_DRAGTARGET       EPM_EDIT_MSGID + 61
  81. #define EPM_PRINT_RENDERPAGE          EPM_EDIT_MSGID + 62
  82. #define EPM_PRINT_RENDERPAGERC        EPM_EDIT_MSGID + 63
  83. #define EPM_QHELP_TABLE               EPM_EDIT_MSGID + 64
  84. #define EPM_EDIT_CLIPBOARDCOPY        EPM_EDIT_MSGID + 65
  85. #define EPM_EDIT_CLIPBOARDPASTE       EPM_EDIT_MSGID + 66
  86. #define EPM_BROADCASTHELP             EPM_EDIT_MSGID + 67
  87. #define EPM_GET_ERROR_MESSAGE         EPM_EDIT_MSGID + 68
  88. #define EPM_SEND_MACROS_ERRORS        EPM_EDIT_MSGID + 69
  89. #define EPM_QUERY_GLOBDATA            EPM_EDIT_MSGID + 70
  90. #define EPM_IS_HELP_LOADED            EPM_EDIT_MSGID + 71
  91. #define EPM_EDIT_TASKLIST             EPM_EDIT_MSGID + 72
  92. #define EPM_EDIT_DELETEFILE           EPM_EDIT_MSGID + 73
  93. #define EPM_DRAGDROP_RENDERCOMPLETE   EPM_EDIT_MSGID + 74
  94. #define BUGFIX00143
  95. #ifdef BUGFIX00143
  96.    #define EPM_EDIT_SAYERROR2            EPM_EDIT_MSGID + 75
  97. #endif
  98.  
  99. // Return codes sent by the EPM_EDIT_DESTROYRC message
  100. #define EPM_RC_DESTROYOK       0
  101. #define EPM_RC_DESTROYTIMEOUT  1
  102. #define EPM_RC_DESTROYCANCEL   2
  103. #define EPM_RC_DESTROYNOFREE   3
  104.  
  105. // Return codes sent by the EPM_EDIT_ASKTOQUITDONE message
  106. #define ERES_CANCEL             0
  107. #define ERES_DISCARD            1
  108. #define ERES_SAVE               2
  109.  
  110. /*═══════════════════════════════════════════════════════════════════════════╗
  111. ║ Editor Styles                                                      GC 7-88 ║
  112. ╚═══════════════════════════════════════════════════════════════════════════*/
  113. #define EDIT_STYLE_BROWSE               0x00000001L
  114. #define EDIT_STYLE_ACTIVATEFOCUS        0x00000004L
  115. #define EDIT_STYLE_STATUSLINE           0x00000008L
  116. #define EDIT_STYLE_MESSAGELINE          0x00000010L
  117. #define EDIT_STYLE_FILEICON             0x00000040L
  118. #define EDIT_STYLE_MOVECURSORACTIVATE   0x00000080L
  119. #define EDIT_STYLE_DISABLEOWNERAFFECTS  0x00000100L
  120. #define EDIT_STYLE_ROTATEBUTTONS        0x00000400L
  121. #define EDIT_STYLE_DMTITLEBAR           0x00000800L
  122. #define EDIT_STYLE_CURSORON             0x00001000L
  123. #define EDIT_STYLE_VSCROLL              0x00010000L
  124. #define EDIT_STYLE_HSCROLL              0x00040000L
  125. #define EDIT_STYLE_STATUSONTOP          0x00080000L
  126. #define EDIT_STYLE_STREAMEDIT           0x00100000L
  127. #define EDIT_STYLE_CUAMARKING           0x00200000L
  128. #define EDIT_STYLE_TASKLISTENTRY        0x00400000L
  129. #define EDIT_STYLE_USEDEFAULTARROWKEYS  0x00800000L
  130. #define EDIT_STYLE_COMMANDMSGTOMACROS   0x01000000L
  131. #define EDIT_STYLE_DISPLAYERRORRETRY    0x02000000L
  132.  
  133. /*═══════════════════════════════════════════════════════════════════════════╗
  134. ║ Editor Command Message Parameter Styles (mp2 of EPM_EDIT_COMMAND)  GC 7-88 ║
  135. ╚═══════════════════════════════════════════════════════════════════════════*/
  136. #define COMMAND_FREESEL    0x00000001L
  137. #define COMMAND_SYNC       0x00000004L
  138. #define COMMAND_GETABLE    0x00000008L
  139.  
  140. /*═══════════════════════════════════════════════════════════════════════════╗
  141. ║ Editor Options (Used with EPM_EDIT_OPTION message)                 GC 7-88 ║
  142. ╚═══════════════════════════════════════════════════════════════════════════*/
  143. #define OPTIONS_MARGINS          1
  144. #define OPTIONS_LINE             2
  145. #define OPTIONS_COLUMN           3
  146. #define OPTIONS_INSERT           4
  147. #define OPTIONS_AUTOSAVE         5
  148. #define OPTIONS_NTABS            6
  149. #define OPTIONS_NROWS            7
  150. #define OPTIONS_NCOLS            8
  151. #define OPTIONS_MODIFY           9
  152. #define OPTIONS_TAB              10
  153. #define OPTIONS_SEARCH           11
  154. #define OPTIONS_GETTEXT          12
  155. #define OPTIONS_NAME             13
  156. #define OPTIONS_HWNDEXTRA        14
  157. #define OPTIONS_HWNDEIOBJECT     15
  158. #define OPTIONS_TEXTCOLOR        16
  159. #define OPTIONS_RING             17
  160. #define OPTIONS_FILEID           18
  161. #define OPTIONS_QSELECTION       19
  162.  
  163.  
  164. //     In EPM the field variables are:
  165. //
  166.   #define  AUTOSAVE_FIELD                      0L
  167.   #define  COL_FIELD                           1L
  168.   #define  CURSORX_FIELD                       2L
  169.   #define  CURSORY_FIELD                       3L
  170.   #define  KEYSET_FIELD                        4L
  171.   #define  LAST_FIELD                          5L
  172.   #define  LINE_FIELD                          6L
  173.   #define  MARGINS_FIELD                       7L
  174.   #define  MARKCOLOR_FIELD                     8L
  175.   #define  MODIFY_FIELD                        9L
  176. //#define  STATUSCOLOR_FIELD                  10L
  177.   #define  TABS_FIELD                         11L
  178.   #define  WINDOWHEIGHT_FIELD                 12L
  179.   #define  WINDOWWIDTH_FIELD                  13L
  180.   #define  WINDOWX_FIELD                      14L
  181.   #define  WINDOWY_FIELD                      15L
  182.   #define  FILENAME_FIELD                     16L
  183.   #define  USERSTRING_FIELD                   17L
  184.   #define  MOUSEX_FIELD                       18L
  185.   #define  MOUSEY_FIELD                       19L
  186.   #define  TEXTCOLOR_FIELD                    20L
  187.   #define  VISIBLE_FIELD                      21L
  188. //#define  MESSAGECOLOR_FIELD                 22L
  189.   #define  DRAGCOLOR_FIELD                    23L
  190.   #define  DRAGSTYLE_FIELD                    24L
  191.   #define  FONTWIDTH_FIELD                    25L
  192.   #define  FONTHEIGHT_FIELD                   26L
  193. //#define  MESSAGELINE_FIELD                  27L
  194. //#define  STATUSLINE_FIELD                   28L
  195.   #define  LOCKHANDLE_FIELD                   29L
  196. //#define  DRAGTHRESHHOLDX_FIELD              30L
  197. //#define  DRAGTHRESHHOLDY_FIELD              31L
  198.   #define  EA_AREA_FIELD                      32L
  199.   #define  ATTRIBUTE_SUPPORT_LEVEL            33L
  200.   #define  CURSOR_OFFSET                      34L
  201. //#define  TABMODE_FIELD                      35L
  202.   #define  AUTOSHELL_FIELD                    35L
  203.   #define  TITLETEXT_FIELD                    36L
  204.   #define  CURSOR_COLUMN                      37L
  205.   #define  FONT_FIELD                         38L
  206.   #define  SCROLLX_FIELD                      39L
  207.   #define  SCROLLY_FIELD                      40L
  208.   #define  CURSORYG_FIELD                     41L
  209.   #define  LINEG_FIELD                        42L
  210.   #define  WINDOWWIDTHG_FIELD                 43L
  211.   #define  WINDOWHEIGHTG_FIELD                44L
  212.   #define  READONLY_FIELD                     45L
  213.   #define  CODEPAGE_FIELD                     46L
  214.  
  215. // Constants to be used with EtkProcessEditKey().
  216.   #define ADJUST_BLOCK     2
  217.   #define BACKTAB         10
  218.   #define BACKTAB_WORD    11
  219.   #define BEGIN_LINE      12
  220.   #define BOTTOM          13
  221.   #define COPY_MARK       21
  222.   #define DELETE_CHAR     23
  223.   #define DELETE_LINE     24
  224.   #define DELETE_MARK     25
  225.   #define DOWN            29
  226.   #define END_LINE        36
  227.   #define ERASE_END_LINE  40
  228.   #define INSERT_LINE     62
  229.   #define INSERT_TOGGLE   64
  230.   #define JOIN            69
  231.   #define LEFT            77
  232.   #define MOVE_MARK       93
  233.   #define NEXT_FILE       98
  234.   #define OVERLAY_BLOCK  105
  235.   #define PAGE_DOWN      107
  236.   #define PAGE_UP        108
  237.   #define PREVFILE_OP    118
  238.   #define REFLOW         126
  239.   #define REPEAT_FIND    129
  240.   #define RIGHT          139
  241.   #define RUBOUT         140
  242.   #define SHIFT_LEFT     150
  243.   #define SHIFT_RIGHT    151
  244.   #define SPLIT          153
  245.   #define TAB            162
  246.   #define TAB_WORD       161
  247.   #define TOP            162
  248.   #define UNDO_LINE      163
  249.   #define UNMARK         165
  250.   #define UP             167
  251.  
  252. /*═══════════════════════════════════════════════════════════════════════════╗
  253. ║ Application structure passed to editor                             GC 7-88 ║
  254. ╚═══════════════════════════════════════════════════════════════════════════*/
  255. typedef struct _EDITORINFO {
  256.    HAB    hab;          // application anchor block
  257.    HWND   hwndparent;   // handle to parent of edit window
  258.    HWND   hwndowner;    // handle to owner of edit window
  259.    PSWP   pswp;         // positioning of edit window
  260.    PSZ    filename;     // file to be edited (with wildcard)
  261.    PVOID  hEditPtr;     // handle to editor pointer icon.
  262.    PVOID  hMarkPtr;     // handle to mark pointer icon.
  263.    PVOID  hEditorIcon;  // editor ICON.
  264.    ULONG  editorstyle;  // internal editor options
  265.    ULONG  pmstyle;      // PM standard window styles (FCF_xxxx)
  266.    USHORT font;         // TRUE = LARGE FONT,  FALSE = SMALL FONT
  267.    PSZ    exfile;       // pre-compiled macro code file (EPM.EX)
  268.    PSZ    topmkr;       // top and bottom of file marker
  269.    PSZ    botmkr;       //
  270.    USHORT editid;       // unique window id specified for edit wind
  271.    PSZ    exsearchpath; // a set of paths to search for ex's files
  272.    PSZ    exe_path;     // path where the application started
  273.    HINI   hini;         // handle to an opened ini profile
  274. } EDITORINFO;
  275. typedef EDITORINFO far *PEDITORINFO;
  276.  
  277. /*═══════════════════════════════════════════════════════════════════════════╗
  278. ║ Function Prototypes                                                        ║
  279. ╚═══════════════════════════════════════════════════════════════════════════*/
  280. #define ETKENTRY _loadds
  281. #include <mainx.h>
  282. #include <attr.h>
  283.  
  284. // Register/Create/Destroy Functions.
  285. PSZ    ETKENTRY EtkRegister( HAB hab, ULONG class_style );
  286. USHORT ETKENTRY EtkCreate( PEDITORINFO epm_p, PHWND hEwnd_p);
  287. USHORT ETKENTRY EtkDestroy( HAB hab, HWND hwnd, HWND hwndef);
  288. VOID   ETKENTRY EtkVersion( PSZ strbuffer );
  289. VOID   ETKENTRY EtkGetProcAddrs(PFN * fptr);
  290.  
  291. // Window Procedure
  292. PVOID  EXPENTRY EtkWndProc(HWND hwnd, USHORT message, MPARAM lParam1, MPARAM lParam2 );
  293.  
  294. // Special Access Functions.
  295. USHORT ETKENTRY EtkRegisterFont( HWND  hwndClient, PSZ fontname, USHORT  fontsize, USHORT  fontsel);
  296. USHORT ETKENTRY EtkRegisterFont2(HWND  hwndClient, PSZ fontname, USHORT  fontsize, USHORT  fontheight, USHORT  fontwidth, USHORT  fontsel);
  297. SHORT  ETKENTRY EtkProcessEditKey( HWND  hwndClient, SHORT  key);
  298. SHORT  ETKENTRY EtkQueryFileID( HWND hwndClient, PULONG  fileid);
  299. SHORT  ETKENTRY EtkDeleteText( HWND  hwndClient, ULONG  thefileid, ULONG  y, ULONG  number_oflines);
  300. SHORT  ETKENTRY EtkReplaceText( HWND  hwndClient, FIDType  repFileid, LINE_INDEX_FR  repLocLinenum, attrstring_ftpp  repLineString);
  301. SHORT  ETKENTRY EtkInsertText( HWND  hwndClient, FIDType  insFileid, LINE_INDEX  insLocLinenum, attrstring_ftpp  insLineString);
  302. SHORT  ETKENTRY EtkQueryText(HWND hwndClient, ULONG getFileid, ULONG getLocLinenum, PSZ  *getText, AttribRecType far * far * getAttrs, AttribRecType far * far * getALAttr);
  303. SHORT  ETKENTRY EtkFindAttribute( HWND hwndClient, FIDType fileid, LINE_INDEX_FR TheLineNm, SHORT TheColm, SHORT TheOfst, AttribRecType ** TheAttribute, PBOOL Found);
  304. SHORT  ETKENTRY EtkSetSelection( HWND  hwndClient, LINE_INDEX_G  firstline,  LINE_INDEX_G  lastline, USHORT firstcol, USHORT lastcol, SHORT  firstoff, SHORT  lastoff, USHORT marktype, FIDType fileid);
  305. SHORT  ETKENTRY EtkQuerySelection(HWND hwndClient, PULONG firstline, PULONG lastline, PUSHORT firstcol, PUSHORT lastcol, PULONG markfileid, USHORT respectattributes, USHORT relative2file);
  306. SHORT  ETKENTRY EtkQuerySelectionType(HWND hwndClient, PUSHORT marktype);
  307. SHORT  ETKENTRY EtkSetFileField(HWND hwndClient, ULONG field, FIDType fileid,  PVOID indata);
  308. SHORT  ETKENTRY EtkExecuteCommand(HWND hwndClient, PSZ command);
  309. SHORT  ETKENTRY EtkQueryFileField( HWND hwndClient, ULONG field, ULONG fileid, PLONG retdata);
  310. SHORT  ETKENTRY EtkQueryFileFieldString(HWND hwndClient, ULONG field, ULONG getFileid, PSZ getText);
  311. SHORT  ETKENTRY EtkInvalidateText( HWND  hwndClient, LINE_INDEX_FR firstline, LINE_INDEX_FR lastline);
  312. ULONG  ETKENTRY EtkInsertTextBuffer( HWND  hwndClient, LINE_INDEX_FR line, ULONG LenText, PSZ buffer);
  313. ULONG  ETKENTRY EtkQueryTextBuffer( HWND  hwndClient, LINE_INDEX_FR startline, LINE_INDEX_FR lastline, ULONG TotalLen, PSZ buffer);
  314. SHORT  ETKENTRY EtkAccessLowLevelData( HWND  hwndClient, FIDType  getFileid, PVOID far *  getSubLineArray);
  315.